私は完全に私の質問を書いています。nodejs待っていないと約束します
なぜ、次のコードに、x()
が最後の行は、コンソールで実行終了console.log('success');
によってコンソールに記録されundefined
代わりのsuccess
に等しくありません。 .then()
コールバックがトリガーされます。
どうすればいいですかx()
は最後の行が実行される前に 'success'値を返します。
でも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());
さらに説明してください。要求が完了する前に、requestify.getのthen節のコードが起動されると言っていますか? – user93
すべての操作を実行した後、バックアップされた内部でリクエストを完了していますか? – user93