首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.then()回调中的` return `是从内部作用域还是外部作用域返回的?

在.then()回调中,return语句是从内部作用域返回的。

在Promise的.then()方法中,回调函数会在Promise对象的状态变为resolved时被调用。回调函数中的return语句用于指定Promise对象的返回值。当return语句执行时,它会从内部作用域中返回一个值,并将该值作为下一个.then()方法的参数。

由于Promise的回调函数是异步执行的,它们会在主线程执行完毕后才被调用。因此,return语句是在回调函数内部作用域中执行的,返回的值也是从内部作用域返回的。

在实际应用中,可以根据具体的业务需求,在.then()回调中使用return语句返回需要的值,以便后续的Promise链式调用或其他处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

异步与函数作用

异步与/函数作用链 JavaScript 只在一个线程上运行,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。...JavaScript 语言本身并不慢,慢读写外部数据,比如等待 Ajax 请求返回结果。这个时候,如果对方服务器迟迟没有响应,或者网络不通畅,就会导致脚本长时间停滞。...如果同步任务,主线程就等着 Ajax 操作返回结果,再往下执行;如果异步任务,主线程在发出 Ajax 请求以后,就直接往下执行,等到 Ajax 操作有了结果,主线程再执行对应函数。...所以$.ajax()返回结果一个承诺,不是结果,因为结果还没有到来 使用回函数 使用回要用这样形式 fn(参数1,参数2,()=>{ 函数(xxx,xxx,()=>{}) }) 不要用...fn3 } var fn = fn1() fn() //undefined 解密 函数在执行过程,先从自己内部找变量 如果找不到,再从创建当前函数所在作用去找, 以此往上 注意找变量的当前状态

1.8K40

Vue style里面使用@import引入外部css, 作用全局解决方案

问题描述 使用@import引入外部css,作用却是全局 export default { name...Add “scoped” attribute to limit CSS to this component only 这句话大家应该是见多了, 我也使用scoped, 但是使用@import引入外部样式表作用依然全局...,看了一遍@import规则后, 进行初步猜测,难道@import引入外部样式表错过了scoped style?...又回想到此前看过前端性能优化文章里面都有提到,在生产环境不要使用@import引入css,因为在请求到css中含有@import引入css的话,会发起请求把@importcss引进来,多次请求浪费不必要资源.../static/css/user.css"; 我们只需把@import改成引入外部样式,就可以解决样式全局问题 <style scoped

97410
  • Vue style里面使用@import引入外部css, 作用全局解决方案

    问题描述 使用@import引入外部css,作用却是全局 export default { name...style> Add “scoped” attribute to limit CSS to this component only 这句话大家应该是见多了, 我也使用scoped, 但是使用@import引入外部样式表作用依然全局...,看了一遍@import规则后, 进行初步猜测,难道@import引入外部样式表错过了scoped style?...又回想到此前看过前端性能优化文章里面都有提到,在生产环境不要使用@import引入css,因为在请求到css中含有@import引入css的话,会发起请求把@importcss引进来,多次请求浪费不必要资源.../static/css/user.css"; 我们只需把@import改成引入外部样式,就可以解决样式全局问题 <style scoped

    1.4K30

    你知道Python4种变量作用哪些吗?

    01 作用 ---- Python作用可以分为四种: L(Local) 局部作用 E(Enclosing) 闭包函数外函数 G(Global) 全局作用...B(Built-in) 内建作用 变量/函数 查找顺序: L –> E –> G –>B 意思,在局部找不到,便去局部外局部作用找(例如 闭包),再找不到就去全局作业里找,再找不到就去内建作业域中找...在一个外函数定义了一个内函数,内函数里运用了外函数临时变量,并且外函数返回内函数引用。这样就构成了一个闭包。其实装饰函数,很多都是闭包。...但是闭包一种特殊情况,如果外函数在结束时候发现有自己临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。 你可以看下面这段代码,就构成了闭包。...关键字:global 将 局部变量 变为全局变量 关键字:nonlocal 可以在闭包函数,引用并使用闭包外部函数变量(非全局噢) global好理解,这里只讲下nonlocal。

    2.1K10

    【半译】在ASP.NET Core创建内部使用作用服务Quartz.NET宿主服务

    ; return Task.CompletedTask; } } 我们还有一个IJobFactory实现,以便我们在需要时DI容器检索作业实例: public class...权宜之计 我在上一篇文章展示解决方案将IServiceProvider注入到您IJob文档,手动创建一个范围,并从中检索必要服务。...作业可以直接使用作用服务 由于作业实例IServiceProvder作用域中解析来,因此您可以在作业实现构造函数安全地使用作用服务。...实现与上一个非常相似,但是在执行我们请求IJob之前,我们DI容器解析了DbContext和消息总线服务。...该QuartzJobRunner通过创建和处理作用隐式地处理这个问题。 但是,此处显示方法并不是在工作中使用范围服务唯一方法。

    1.8K10

    深入理解JavaScript闭包之什么闭包

    ,其中不同地方就是在于内部函数 bar 在执行前,外部函数返回。...首先解释5哪里来,这个循环终止条件 i 不再 < 5,条件首次成立时 i 5,因此,输出显示循环结束时 i 最终值。 延迟函数会在循环结束时才执行。...事实上,当定时器运行时即使每个迭代执行都是 setTimeout(.., 0),所有的函数依然在循环结束后才会被执行。因此每次输出一个 5来。...这样修改之后,在每次迭代内使用 IIFE(立即执行函数)会为每个迭代都生成一个新作用,使得延迟函数可以将新作用封闭在每个迭代内部,每个迭代内部都会含有一个具有正确值变量可以访问。...为什么总是 JavaScript 闭包应用都有着关键词 “return”, javaScript 秘密花园 中有一段话解释到:闭包JavaScript 一个非常重要特性,这意味着当前作用总是能够访问外部作用变量

    84430

    JavaScript闭包

    JavaScript闭包 函数和对其词法环境lexical environment引用捆绑在一起构成闭包,也就是说,闭包可以让你内部函数访问外部函数作用。...在本质上,闭包将函数内部和函数外部连接起来桥梁。 定义闭包 为了定义一个闭包,首先需要一个函数来套一个匿名函数。...闭包需要使用局部变量,定义使用全局变量就失去了使用闭包意义,最外层定义函数可实现局部作用从而定义局部变量,函数外部无法直接访问内部定义变量。...callback函数与其词法环境构成了闭包,其词法环境存在变量localVal = 1在函数callback作为函数传递时并没有被立即释放,而可以在执行时继续使用,这就是闭包为机制提供了支持...(coun[i]()); // 3 3 3 } 可以看到运行输出3 3 3,而并不是期望0 1 2,原因这三个闭包在循环中被创建时候,共享了同一个词法作用,这个作用由于存在一个i由var声明

    1.1K00

    定义闭包

    JavaScript闭包 函数和对其词法环境lexical environment引用捆绑在一起构成闭包,也就是说,闭包可以让你内部函数访问外部函数作用。...在本质上,闭包将函数内部和函数外部连接起来桥梁。 定义闭包 为了定义一个闭包,首先需要一个函数来套一个匿名函数。...闭包需要使用局部变量,定义使用全局变量就失去了使用闭包意义,最外层定义函数可实现局部作用从而定义局部变量,函数外部无法直接访问内部定义变量。...callback函数与其词法环境构成了闭包,其词法环境存在变量localVal = 1在函数callback作为函数传递时并没有被立即释放,而可以在执行时继续使用,这就是闭包为机制提供了支持...(coun[i]()); // 3 3 3 } 可以看到运行输出3 3 3,而并不是期望0 1 2,原因这三个闭包在循环中被创建时候,共享了同一个词法作用,这个作用由于存在一个i由var声明

    25110

    搞懂JavaScript引擎运行原理

    作用作用链 在前面的示例,所有内容都是全局作用,这意味着我们可以代码任何位置访问它。 现在,介绍下私有作用以及如何定义作用。...由于函数c本身没有变量myVar,所以它它通过作用链向上找,也就是函数b,因为myVar函数b内部声明过。 下面执行示意图: ? 请记住,外部引用是单向,它不是双向关系。...对于块作用变量,它行为类似于函数,注意var b可以在外部访问,但是const blockedVar不能。 在块内部作用链向上找到 a 并将let a更改为9000。...简单闭包 这个例子 有一个返回函数函数,并在返回函数中使用外部变量, 这称为闭包。...,所以函数实际两秒后才会执行,这是JavaScript应用程序常见错误。

    86720

    再谈JS闭包

    块级作用 不同作用能够拥有同名变量 外部作用变量可以在内部作用域中访问 JS通过「词法作用」(静态作用)来实现变量查询机制 「闭包(closure)一个函数」:其有权访问其词法作用内部变量即使该函数在词法作用外部被调用...Event handler(事件处理器) 2. callback(函数) 3....❝外部作用变量可以在内部作用域中访问 ❞ 一图胜千言 从上面的示例我们可以得出两个结论 作用可以嵌套 外部作用变量可以在内部作用域中访问 3....一图胜千言 我们可以得出如下结论 ❝「闭包(closure)一个函数」:其有权访问其词法作用内部变量即使该函数在词法作用外部被调用 ❞ 更简单讲:闭包一个函数,它会定义它地方记住变量,...5.2 Callbacks 在函数,也存在变量捕获情况。例如:setTimeout函数 const message = 'Hello, World!'

    2.8K30

    JavaScript(高级)

    作用链 理解 多个上下级关系作用形成链, 它方向从下向上(内到外) 查找变量时就是沿着作用链来查找 查找一个变量查找规则 在当前作用执行上下文中查找对应属性, 如果有直接返回...函数嵌套 内部函数引用了外部函数数据(变量/函数), 执行函数定义就会产生闭包(不用调用内部函数) 调用外部函数 闭包作用: 使用函数内部变量在函数执行完后, 仍然存活在内存(延长了局部变量生命周期...一般不存在, 存在于闭变量才可能存在 在函数外部能直接访问函数内部局部变量吗?...setTimeout()函数在主线程执行 定时器函数只有在运行栈代码全部执行完后才有可能执行 为什么js要用单线程模式, 而不用多线程模式?...使用: 主线程 // 创建一个Worker对象并向它传递将在新线程执行脚本URL var worker = new Worker('worker.js'); // 绑定用来接收分线程返回数据

    89920

    一文讲透JavaScript闭包与立即执行函数表达式(IIFE)

    这是因为setTimeout函数在循环结束后才执行,此时i已经变成了6,所以无论定时器运行多长时间,都会输出6。要解决这个问题,可以利用闭包来创建一个新作用,捕获每次循环变量值。...每次循环时,都会创建一个新作用,保留了当前循环变量值。这样,每个setTimeout函数都捕获了对应j值,从而实现了按照预期顺序输出1、2、3、4、5。...这样做好处可以在函数内部定义变量和函数,而不会对外部全局作用造成污染。...在传统for循环中,由于JavaScript只有函数作用和全局作用,没有块级作用,所以在循环体内部定义变量会被循环体外部代码共享,可能导致意想不到结果。...在IIFE内部,我们使用j来接收传入参数i,这样就创建了一个函数作用内部变量j,它与外部循环变量i相互独立

    1.1K41

    【Vue原理】VModel - 白话版

    } 更新内部数据流程 1、当事件触发时候,会把 表单值 赋值给 name 2、name 组件实例上访问 3、所以这次赋值会 直接改变组件实例 name 怎么赋值给组件实例name...一开始不懂,所以不理解,也没查到,写了个例子,大概理解了意思 1、因为事件 在 with 里面声明 2、于是事件 作用链最顶层 就加上了一层 with 绑定作用 3、就算事件不在...with 执行,事件 变量访问,也会先访问之前 with 绑定过作用,因为作用最顶层 with举栗子 var name=22 var a={name:"a"} with(a){...行了,给你看结果了 [image] 好吧,再一次深刻认识到一个知识点,with 绑定作用原来这么强,离开with执行,还是先访问他作用,脱离不出魔爪啊,强盗作用 [image] 回来总结!...于是当事件执行时候,会 直接赋值 给 组件实例name,这样便通过外部改变了内部数据 TIP 外部变化,本来可能会存在一种情况 a、手动修改表单后, 内会更新组件值 b、组件值更新之后,

    1K40

    JS_基础知识点精讲

    ❝在词法环境内部,维护了一个「小型栈结构」,栈底函数最外层变量,进入一个作用块后,就会把该作用内部变量压到栈顶。当作用执行完成之后,该作用信息就会「栈顶弹出」。...当通过「调用」一个外部函数「返回」一个内部函数后,即使该外部函数已经执行结束了。但是「内部函数引用外部函数变量依然保存在内存」,就把这些「变量集合称为闭包」。...」,内部函数 getName 和 setName 总是可以访问它们外部函数 test 变量 在执行test时,调用栈情况 test 函数执行完成之后,其执行上下文「栈顶弹出」了 但是由于返回...❞ 当我们查找一个变量值时, 首先在当前环境搜索它名称,如果当前环境没有; 然后在外部环境搜索,外部环境也没有; 然后在外部环境外部环境搜索,一直搜到全局作用, 如果全局作用也没有该变量...函数被放入Event Table后5秒钟,Event Table把firstFucntion移到Event Queue

    1.1K10

    前端面试题合集

    2、如果不设置函数,Promise内部抛出错误,不会反应到外部。3、当处于Pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。...图片因为通常情况下,函数内部变量无法在外部访问(即全局变量和局部变量区别),因此使用闭包作用,就具备实现了能在外部访问某个函数内部变量功能,让这些内部变量值始终可以保存在内存。...但是通过闭包,我们最后还是可以拿到 a 变量值闭包有两个常用用途闭包第一个用途使我们在函数外部能够访问到函数内部变量。...当然这个理解建立 Chrome 表现之上,在不同浏览器上因为引擎不同,可能存储方式还是有所变化。闭包产生原因我们在前面介绍了作用概念,那么你还需要明白作用基本概念。...(a);//3 }}从中可以看出,fun1 函数作用指向全局作用(window)和它自己本身;fun2 函数作用指向全局作用 (window)、fun1 和它本身;而作用最底层向上找

    79120

    【JavaScript】 进阶教程 施工~

    理解 多个上下级关系作用形成链,他方向从下向上内到外) 查找变量时就是沿着作用链来查找 查找一个变量查找规则 在当前作用执行上下文中查找对应属性,如果有直接返回,否则进入...当一个嵌套内部(子)函数引用了嵌套外部(父)函数变量(函数)时,就产生了闭包 闭包到底是什么? 闭包嵌套内部函数包含被引用外部变量(函数)对象 产生闭包条件?...JS单线程运行 ​ 但是通过H5Web Wokers可以多线程运行 浏览器运行时多线程还是单线程? ​ 多线程 浏览器运行时单进程还是多进程? ​...setTimeout()函数在主线程执行 定时器回到函数只有在运行栈代码全部执行完后才有可能执行 2、为什么js要用单线程模式,而不是多线程模式?...执行初始化代码,将事件函数交给对应模块管理 当事件发送时,管理模块会将函数及其数据添加到队列 只有当初始化代码执行完后(可能要一定时间),才会遍历读取回队列函数执行 <button

    1.4K30

    深入探讨JavaScript函数

    本文将深入探讨JavaScript函数各个方面,包括函数定义、参数传递、作用、闭包、函数等,以帮助您更好地理解和利用JavaScript函数。...作用和闭包JavaScript函数作用和闭包理解函数行为关键概念。作用定义了变量可见性,而闭包允许函数访问其外部作用变量。1....作用JavaScript中有两种作用:全局作用和局部作用。全局作用包含全局变量,而局部作用包含在函数内部声明变量。...闭包闭包指一个函数可以访问其定义外部作用变量,即使在该外部作用已经结束执行。这使得函数能够“记住”在其创建时可访问变量。...闭包闭包指函数可以访问其定义外部作用变量。这使得函数可以保留对外部变量引用,即使外部作用已经结束执行。

    31452

    关于闭包

    ....然而在这个过程..有一种临时变量无法被垃圾回收...当A函数中有一个内部函数a时.a函数内引用了A定义临时变量...并且a函数在A函数执行完后..仍然可以被外部访问到时...被a函数所引用临时变量就无法被当成垃圾等待垃圾回收...闭包在定义时产生...           闭包并非在定义时产生...而是在内部函数可被外部访问到时才会产生...     3。 闭包很强大..用越多就越牛A(==!)          ...不否认闭包很强大.....但是并非用越多就是越好...使用闭包..会造成调试困难..所以要习惯做标识..另外...使用闭包会涉及到 增长函数作用 造成内部函数访问全局变量变慢问题...    ...而上面讲闭包使用场景时 其中有一条就是事件函数 当一个事件函数位于一个作用时候...作用执行外后 由于函数并未马上执行..而是等到相应事件触发时才执行...当函数依赖该作用临时变量时......导致该作用内部使用临时变量无法马上被当垃圾回收(意味着该临时变量不会消失)     目前我们拥有一个事件函数 要做就是需要让这个事件函数位于一个函数作用内     代码: for

    2K20

    《现代Javascript高级教程》Javascript执行上下文与闭包

    JavaScript函数在创建时,就确定了其操作上下文环境,即词法作用。这是因为JavaScript采用静态作用,也叫词法作用,函数作用在函数定义时候就决定了。...闭包概念虽然来自计算机科学深层理论,但在日常JavaScript编程,它是一个非常实用且常见特性,被广泛用于如数据隐藏和封装、模块化编程、函数和计时器等许多场景。...再者,每次调用外部函数,都会为内部闭包创建一个新作用。...模块内部变量和函数对外部不可见,只有通过公共接口才能访问。 3. 函数和事件处理 闭包常常用于处理函数和事件处理,特别是在异步编程。...当异步操作完成时,它会调用回函数并传递数据给它。闭包保持了函数上下文,使得函数可以访问外部processData函数。 4. 缓存和记忆化 闭包还可以用于实现缓存和记忆化功能。

    17330

    web前端面试都问什么-JS篇

    稍全面的回答: 在js变量作用属于函数作用, 在函数执行完后,作用就会被清理,内存也会随之被回收,但是由于闭包函数建立在函数内部子函数, 由于其可访问上级作用,即使上级函数执行完, 作用也不会随之销毁...这里涉及到对函数作用认识: js变量分为全局变量和局部变量;函数内部可以直接读取全局变量,而在函数外部自然无法读取函数内局部变量 闭包解决了什么问题 可以读取函数内部变量 让这些变量值始终保持在内存...将构造函数作用赋值给新对象。(也所以this对象指向新对象) 执行构造函数内部代码,将属性添加给objthis对象。 返回新对象obj。...1.无法中途退出循环,只能用return退出本次回,进行下一次. 2.它总是返回 undefined值,即使你return了一个值。...它作用是为 Promise 实例添加状态改变时函数。then方法第一个参数resolved状态函数,第二个参数(可选)rejected状态函数。

    3.8K32
    领券