为什么.then()中的value未定义链接到Promise?

给定

function doStuff(n /* `n` is expected to be a positive number */) {

return new Promise(function(resolve, reject) {

setTimeout(function() {

resolve(n * 10)

}, Math.floor(Math.random() * 1000))

})

.then(function(result) {

if (result > 100) {

console.log(result + " is greater than 100")

} else {

console.log(result + " is not greater than 100");

}

})

}

doStuff(9)

.then(function(data) {

console.log(data) // `undefined`, why?

})

为什么dataundefined.then()链接到doStuff()电话吗?

回答:

因为没有ed Promise或其他值return.then()链接到Promise构造函数。

请注意,.then()将返回一个新Promise对象。

解决方案是return使用returnvalue或Promisefrom 的值或其他函数调用.then()

function doStuff(n /* `n` is expected to be a positive number */) {

return new Promise(function(resolve, reject) {

setTimeout(function() {

resolve(n * 10)

}, Math.floor(Math.random() * 1000))

})

.then(function(result) {

if (result > 100) {

console.log(result + " is greater than 100")

} else {

console.log(result + " is not greater than 100");

}

// `return` `result` or other value here

// to avoid `undefined` at chained `.then()`

return result

})

}

doStuff(9)

.then(function(data) {

console.log("data is: " + data) // `data` is not `undefined`

});

以上是 为什么.then()中的value未定义链接到Promise? 的全部内容, 来源链接: utcz.com/qa/405740.html

回到顶部