ajax请求中的Javascript回调函数

k1nda

我想在这里用js写一个回调函数。问题是返回值不正确。ajax 调用中的变量“d”包含正确的数据。但是 done(..) 函数中的变量 a 没有。有谁知道如何分配 d 的值?

    function render_confirmation_email(data, cart, delivery_date){
        console.log("Render confirmation email")
        var purchaseTable = "<table>"
        for (var i = 0; i < cart.length; i++) {
            console.log(i);
            var concept = cart[i].name;
            var price = cart[i].price;
            purchaseTable += "<tr>"
            purchaseTable += "<td>" + concept + " - </td>"
            purchaseTable += "</tr>"
            purchaseTable += "<tr>"
            purchaseTable += "<td>" + price + " kr\n</td>"
            purchaseTable += "</tr>"
        }

        purchaseTable += "</table>"
        purchaseTable += "<br> <p>It will be delivered on " + delivery_date + "</p>"

        var tempDom;
        tempDom = $('<div></div>').append(data);
        tempDom.find('#purchaseTable').append(purchaseTable);
        return tempDom.text()
    }


    function get_confirmation_email(cart, delivery_date, render_confirmation_email) {

        return $.ajax({
            type: "GET",
            url:"/confirmation_email",
            async: false,
            success:function(data) {
                console.log("success");
                // render_confirmation_email called when data is ready
                var d = (render_confirmation_email(data, cart, delivery_date));
                console.log("Rendering done")
                console.log(d)
                return d
            }
        });
    }

    var a = get_confirmation_email(JSONcart, form.querySelector('input[name=deliverydate]').value, render_confirmation_email);
    a.done(function(data) {
        console.log("Function done");
        console.log(data);
    });

谢谢!!!

查理特

使用then()每个实例。Areturn什么都不做,success因为它不是承诺链的一部分

基本示例

function doAjax() {
  // sample data that will be returned
  var json = '{"foo":[1,2,3]}'

  return $.ajax({...}).then(function(resp){
     // return to next "then()" in promise chain 
     return resp.foo
  })
}


doAjax().then(function(data){
  console.log(data) // [1,2,3]
})

DEMO

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript ES6 + Jquery:如何在ajax请求的成功回调函数中调用类的方法?

来自分类Dev

Javascript中异步请求的“条件”回调

来自分类Dev

wordpress中ajax表单的回调函数

来自分类Dev

如何使回调函数在Javascript中同步?

来自分类Dev

javascript / jQuery中的回调函数参数

来自分类Dev

JavaScript中的回调函数如何工作

来自分类Dev

javascript中带箭头函数的回调

来自分类Dev

在“请求”中调用模块的本地函数作为回调

来自分类Dev

在“请求”中调用模块的本地函数作为回调

来自分类Dev

一个简单的ajax示例中的javascript回调函数onreadystatechange

来自分类Dev

回调函数承诺ajax

来自分类Dev

如何从ajax成功回调函数读取javascript变量

来自分类Dev

Javascript Ajax回调函数未定义错误

来自分类Dev

如何从ajax成功回调函数读取javascript变量

来自分类Dev

从JavaScript的回调函数中调用对象函数

来自分类Dev

Ajax 帖子在回调中返回错误函数

来自分类Dev

Ajax之后的JavaScript回调

来自分类Dev

Ajax之后的JavaScript回调

来自分类Dev

如何从JavaScript中的回调函数中获取全部数据

来自分类Dev

Javascript回调函数的用法

来自分类Dev

嵌套的JavaScript回调函数

来自分类Dev

javascript回调函数同步

来自分类Dev

Javascript匿名回调函数

来自分类Dev

javascript回调函数选择

来自分类Dev

在setState()的回调中发出AJAX请求

来自分类Dev

为ajax请求编写jQuery回调

来自分类Dev

Javascript中的AJAX-命名回调无效

来自分类Dev

了解JavaScript中的术语iteratee,回调,函数工厂

来自分类Dev

将参数传递给JavaScript中的url回调函数