This question already has answers here:
How to return value from an asynchronous callback function? [duplicate]
(3个答案)
在8个月前关闭。
一个非常简单的问题。我将其简化为说明我的问题的最简单版本。
为什么这个原始JS返回一个promise,我如何才能使其返回“ Hello”?
(3个答案)
在8个月前关闭。
一个非常简单的问题。我将其简化为说明我的问题的最简单版本。
为什么这个原始JS返回一个promise,我如何才能使其返回“ Hello”?
let result = test()
.then(function(result) {
return result;
});
alert(result);
function test(serialized) {
return new Promise(function(resolve, reject) {
resolve("Hello");
});
}
最佳答案
发生的情况是您正在“更改” then
方法返回的值。then
方法将始终返回承诺,即使您正在返回值,它也包装在已解析的承诺中(例如Promise.resolve('Hello')
),这使您可以实现可链接性,例如,您可以调用并返回其他承诺。 then
回调,他们将等待解决方案继续并解决。
test()
.then(function(result) {
console.log(result);
return result + ' world!';
}).then(function(result2) {
console.log(result2); // Hello world!
return new Promise(function (resolve) { resolve('End') });
}).then(function (result) {
console.log(result);
})
function test(serialized) {
return new Promise(function(resolve, reject) {
resolve("Hello");
});
}
关于javascript - 为什么这个简单的JS promise 会返回 promise ? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56134951/