如何定义 4 个函数来适应这两个测试(javascript/q)

How to define 4 functions to fit these two tests (javascript/q)

本文关键字:两个 测试 javascript 何定义 定义 函数      更新时间:2023-09-26

当我找到q时,我在它的描述中发现,有这样的演示代码:

step1(function (value1) {
    step2(value1, function(value2) {
        step3(value2, function(value3) {
            step4(value3, function(value4) {
                // Do something with value4
                console.log("finised: " + value4)
            });
        });
    });
});

Q.fcall(step1)
.then(step2)
.then(step3)
.then(step4)
.then(function (value4) {
    // Do something with value4
    console.log("finished in q: " +value4);
}, function (error) {
    // Handle any error from step1 through step4
    console.log("err: " + err);
})
.end();

我想知道,如何定义 4 个函数step1/step2/step3/step4以适应这两个测试?

我试过了:

function step1(callback) { console.log("step1"); return "abc"; };
function step2(str, callback) { console.log("step2"); return str; };
function step3(str, callback) { console.log("step3"); return str; };
function step4(str, callback) { console.log("step4"); return str; };

function step1(callback) { console.log("step1"); return callback("abc"); };
function step2(str, callback) { console.log("step2"); return callback(str); };
function step3(str, callback) { console.log("step3"); return callback(str); };
function step4(str, callback) { console.log("step4"); return callback(str); };

并希望它打印:

step1
step2
step3
step4
finised: abc
step1
step2
step3
step4
finised in q: abc

但两者都不起作用。

你通过回调返回


function step1(callback) { console.log("step1"); callback("abc"); };
function step2(str, callback) { console.log("step2"); callback(str); };
function step3(str, callback) { console.log("step3"); callback(str); };
function step4(str, callback) { console.log("step4"); callback(str); };