我正在完全重写我的问题,并进一步简化它。
为什么,在下面的代码中,确实x()
等于undefined
而不是success
通过console.log('success');
最后一行在控制台中执行完毕;然后.then()
触发回调。
我怎样才能让它x()
在最后一行开始执行之前返回“成功”值。
甚至 yF() 的计算结果为undefined
。但是, .then() 正在回显th y: success
。
const promise = require('promise');
const requestify = require('requestify');
function x() {
requestify.get('https://<redacted>/')
.then(function (d) {
console.log('success', d.code);
return 'success';
})
.fail(function (f) {
console.log('fail', f.code);
return 'fail';
});
;
}
var yF = function () {
yP .then(function (th) { console.log("th", th); return th; })
.catch(function (fl) { console.log("fl", fl); return fl; });
}
var yP = new Promise(
function (resolve, reject) {
if (1 == 1) {
resolve("y: success");
} else {
reject(new Error("y: fail"));
}
}
);
console.log("hello", x());
console.log("world", yF());