【问题标题】:Problems with Callbacks Request回调请求的问题
【发布时间】:2018-02-07 13:08:54
【问题描述】:

在这种情况下我将如何使用回调?我不确定自己做错了什么,我查看了解释,但仍然无法理解这个概念。

这是一个sn-p:

function retrieveTransactionInfo(transactionUrl) {
    request(transactionUrl, function (error, response, body) {
        // Parse JSON here
        // Set variables accordingly
        console.log('1');
    });
}

function getTransactionInfo(data, callback) {
    callback(data);
}


$('#search-btn').click(function() {

    getTransactionInfo(transactionUrl, retrieveTransactionInfo);
    console.log('2');

它所做的是首先运行控制台日志“2”而不是“1”。我怎样才能让它去 1 然后 2 呢?还是我应该构建完全不同的代码?

【问题讨论】:

  • 这就是异步性的全部意义,除非您以某种方式阻止回调直到 console.log('2') 完成,否则您无法预测它们的执行顺序。很可能在某些情况下,您首先会看到 1
  • 请求是异步的,控制台日志'2'发生在回调解决之前。

标签: javascript jquery node.js callback request


【解决方案1】:

日志'2'首先是正确的,因为get请求是异步完成的。换句话说,getTransactionInfo 立即返回,引擎执行下一行。

稍后,当异步请求结束时,将调用回调,并完成 '1' 输出。如果您的 API 执行异步请求,您就不能这样做。

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2019-03-08
    • 2021-06-15
    • 2021-01-04
    相关资源
    最近更新 更多