<i id='Ai12U'><tr id='Ai12U'><dt id='Ai12U'><q id='Ai12U'><span id='Ai12U'><b id='Ai12U'><form id='Ai12U'><ins id='Ai12U'></ins><ul id='Ai12U'></ul><sub id='Ai12U'></sub></form><legend id='Ai12U'></legend><bdo id='Ai12U'><pre id='Ai12U'><center id='Ai12U'></center></pre></bdo></b><th id='Ai12U'></th></span></q></dt></tr></i><div id='Ai12U'><tfoot id='Ai12U'></tfoot><dl id='Ai12U'><fieldset id='Ai12U'></fieldset></dl></div>

  1. <small id='Ai12U'></small><noframes id='Ai12U'>

    <tfoot id='Ai12U'></tfoot>

      <bdo id='Ai12U'></bdo><ul id='Ai12U'></ul>
  2. <legend id='Ai12U'><style id='Ai12U'><dir id='Ai12U'><q id='Ai12U'></q></dir></style></legend>

    1. 承诺,如何将变量传递给 .then 函数

      时间:2023-10-13

          <tfoot id='0YpdT'></tfoot>

            <bdo id='0YpdT'></bdo><ul id='0YpdT'></ul>

            <small id='0YpdT'></small><noframes id='0YpdT'>

          • <legend id='0YpdT'><style id='0YpdT'><dir id='0YpdT'><q id='0YpdT'></q></dir></style></legend>

                <tbody id='0YpdT'></tbody>
              <i id='0YpdT'><tr id='0YpdT'><dt id='0YpdT'><q id='0YpdT'><span id='0YpdT'><b id='0YpdT'><form id='0YpdT'><ins id='0YpdT'></ins><ul id='0YpdT'></ul><sub id='0YpdT'></sub></form><legend id='0YpdT'></legend><bdo id='0YpdT'><pre id='0YpdT'><center id='0YpdT'></center></pre></bdo></b><th id='0YpdT'></th></span></q></dt></tr></i><div id='0YpdT'><tfoot id='0YpdT'></tfoot><dl id='0YpdT'><fieldset id='0YpdT'></fieldset></dl></div>
                本文介绍了承诺,如何将变量传递给 .then 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                您好,这是一个帮助我了解 Promises .then 如何返回工作的问题.问题是:如何将变量范围限定为第二个 .then 链式函数?

                Hello this is a question to help me understand how Promises .then returns work. The question is: how can I scoped variables to the second .then chained function?

                这是一个 jsbin http://jsbin.com/xacuna/edit?js,output

                Here is a jsbin http://jsbin.com/xacuna/edit?js,output

                我可以访问全局变量,然后将作用域变量传递给第一个,而不是之后.

                I can access the global variables, and pass in the scoped variables to the first then, but not after.

                  let innerReturnFunction = (res, myName) => {
                    /* this works */
                    console.log(`hi from inner name: ${myName}`)
                    return res
                  }
                
                 let getInnerFuncVariable = () => {
                   var myName = 'arturo'
                
                   return fetch('https://httpbin.org/get')
                    .then(function (res) {
                      myName = 'Bob'
                      return innerReturnFunction(res, myName);
                    })
                    .then(function (res, myName) {
                      /* doesn't work, how can I access myName */
                      console.log(`in first then ${res.url}, ${myName}`)
                    });
                 }
                
                getInnerFuncVariable().then(function(res, myName) {
                  /* how can I access myName */
                  console.log(`last called ${myName}`)
                })
                

                推荐答案

                当你使用 ES2015 - 简单的解决方案使用 对象速记属性名称 和 对象解构

                as you are using ES2015 - easy solution uses object Shorthand property names and Object destructuring

                let innerReturnFunction = ({res, myName}) => {
                    /* this works */
                    console.log(`hi from inner name: ${myName}`);
                    return {res, myName}; // return an object
                }
                
                let getInnerFuncVariable = () => {
                    var myName = 'arturo';
                
                    return fetch('https://httpbin.org/get')
                        .then(function(res) {
                            myName = 'Bob'
                            return innerReturnFunction({res, myName});
                        })
                        .then(function({res, myName}) {
                            console.log(`in first then ${res.url}, ${myName}`);
                            return {res, myName};// ADD THIS!!
                        });
                }
                
                getInnerFuncVariable().then(function({res, myName}) {
                    console.log(`last called ${myName}`)
                })
                

                这篇关于承诺,如何将变量传递给 .then 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:XMLHttpRequest 异步不起作用,总是返回状态 0 下一篇:当任何 XMLHttpRequest 完成时如何运行函数?

                相关文章

                最新文章

                    <bdo id='3pkQU'></bdo><ul id='3pkQU'></ul>
                  <i id='3pkQU'><tr id='3pkQU'><dt id='3pkQU'><q id='3pkQU'><span id='3pkQU'><b id='3pkQU'><form id='3pkQU'><ins id='3pkQU'></ins><ul id='3pkQU'></ul><sub id='3pkQU'></sub></form><legend id='3pkQU'></legend><bdo id='3pkQU'><pre id='3pkQU'><center id='3pkQU'></center></pre></bdo></b><th id='3pkQU'></th></span></q></dt></tr></i><div id='3pkQU'><tfoot id='3pkQU'></tfoot><dl id='3pkQU'><fieldset id='3pkQU'></fieldset></dl></div>

                  <tfoot id='3pkQU'></tfoot>

                  1. <legend id='3pkQU'><style id='3pkQU'><dir id='3pkQU'><q id='3pkQU'></q></dir></style></legend>

                    <small id='3pkQU'></small><noframes id='3pkQU'>