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

函数不返回对象以供.then使用-但能够console.log该对象,并且我显式地返回它

函数不返回对象以供.then使用,但能够console.log该对象,并且显式地返回它的情况下,可以通过Promise来实现。

Promise是一种异步编程的解决方案,它可以在异步操作完成后返回结果。在这种情况下,可以使用Promise来包装需要返回的对象,并在Promise的resolve函数中返回该对象。然后,通过调用Promise的.then方法来获取返回的对象。

下面是一个示例代码:

代码语言:txt
复制
function getObject() {
  return new Promise((resolve) => {
    const obj = { key: 'value' };
    console.log(obj);
    resolve(obj);
  });
}

getObject().then((result) => {
  // 在这里可以使用返回的对象result进行后续操作
});

在这个示例中,函数getObject返回了一个Promise对象,在Promise的构造函数中,首先创建了一个对象obj,然后通过console.log打印出了该对象。接着,在resolve函数中将该对象作为参数传递给resolve函数,表示Promise操作已经完成并返回了该对象。在函数的最后,调用了Promise对象的.then方法,并传入一个回调函数,这个回调函数将在Promise操作成功后被调用,并且可以使用返回的对象进行后续操作。

需要注意的是,Promise操作是异步的,因此在.then方法之前的代码可能会先执行。但无论如何,通过Promise的resolve函数确保了返回的对象可以被后续的.then方法获取到。

关于Promise的更详细的说明和用法可以参考腾讯云的产品介绍链接:Promise介绍

希望以上内容能够帮助到您!

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

相关·内容

【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,要讲故事啦~~

javascript中的this和函数息息相关,所以今天,就给大家详细讲述一番:javascript函数中的this 一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里就只说最核心的一点..., obj.fire()的调用实际上使用到了this的隐绑定,这就是下面要讲的内容,这个例子接下来还会继续讲解 【总结】 凡事函数作为独立函数调用,无论的位置在哪里,的行为表现,都和直接在全局环境中调用无异...函数对象的独立性, this的传递丢失问题 (下面的描述可能带有个人的情感倾向而显得不太严谨,这是因为希望阅读者尽可能地理解想表达的意思) 隐绑定下,作为对象属性的函数,对于对象来说是独立的...: 1.call将立即执行该函数 2.bind执行函数,只返回一个可供执行的函数 【其他】:至于apply,因为除了使用方法,和call并没有太大差别,这里不加赘述 在这里,绑定和隐绑定下...因为this的缘故 在隐绑定下:函数和只是暂时住在“包含对象“的旅馆里面,可能过几天就又到另一家旅馆住了 在绑定下:函数将取得在“包含对象“里的永久居住权,一直都会”住在这里“ new绑定 【故事

70870

JS入门难点解析7-this

随着使用模式越来越复杂,传递上下文对象会让代码变得越来越混乱,使用 this 则不会这样。后面介绍对象和原型时,你就会明白函数可以自动引用合适的上下文对象有多重要。...10 ); 但是这种写法已被废弃,建议使用。...那么如果我们不想在对象内部包含函数引用,而想在某个对象上强制调用函数怎么做呢? 可以通过call()、apply()、bind()方法把对象绑定到this上,这种做法叫做绑定。...要注意以下几点: 构造函数通常不使用return关键字,它们通常初始化新对象,当构造函数函数体执行完毕时,它会返回。在这种情况下,构造函数调用表达式的计算结果就是这个新对象的值。...function fn(){ this.a = 2; } var test = new fn(); console.log(test); // {a:2} 如果构造函数使用return语句没有指定返回

72810
  • JavaScript中this指向哪儿?如何确定this?-前端面试进阶

    其实就是一个执行上下文中的一个属性,大家也可以简单的把 this 当作一个对象,只不过对象指向哪儿是在函数调用的时候确定的。...4.this 绑定规则到这里我们知道了 this 的绑定是在函数调用的时候确定的,以及 this 指向函数自身等等问题。那么,函数在某个位置被调用时,我们怎么确定 this 绑定到哪里呢?...使用 new 来调用函数时,会执行下面操作:创建一个全新的对象这个新对象会被执行原型连接这个新对象会绑定到函数调用的 this如果函数没有返回其它对象,那么 new 表达式种的函数调用会自动返回这个新对象我们可以看到...因为使用了 new 绑定,我们得到了新的 baz 对象并且 baz.name 为张三。总结:new 绑定 > 绑定,需要注意的是,new 操作时将 this 绑定到了新创建的对象。...6.this 绑定总结到这儿,我们基本上能够确定一个函数内部的 this 指向哪儿了,我们这里做出一些总结,以供在项目实践中判断 this 绑定。

    24380

    JavaScript中的this指向问题

    绑定中的 this:通过使用 call() 、 apply() 或bind()方法,可以指定一个函数的 this 值。...this的隐绑定 this的隐绑定是指在函数作为对象的方法调用时,this会隐绑定到对象上。这种绑定方式可以让我们在方法内部引用对象自身的属性和方法。...当一个函数作为对象的方法调用时,this会被隐绑定到对象上,使得函数内部可以通过this来访问对象的属性和方法。...this的显示绑定 绑定是指在函数调用时明确指定函数内部的this值。绑定可以通过以下三种方法实现: 使用call方法:call()方法允许我们调用一个函数并且设置this的值。...如果构造函数没有返回一个对象,则返回这个新对象。 通过这个过程,我们可以看到,当使用new关键字调用构造函数时,JavaScript会自动将构造函数中的this绑定到新创建的实例上。

    24160

    惊艳!可视化的 js:动态图演示 Promises & AsyncAwait 的过程!

    随着 async 和 await 关键字的引入,我们能够创建一个隐返回一个 promise 的 async 函数。但是,我们怎么做呢?...之前,我们看到不管是通过输入 new Promise(() => {}),Promise.resolve 或 Promise.reject,我们都可以使用 Promise 对象创建 promise...我们现在能够创建隐返回一个对象的异步函数,而不是使用 Promise 对象!这意味着我们不再需要写任何 Promise 对象了。...尽管 async 函数返回 promise 是一个非常棒的事实,但是在使用 await 关键字的时候才能看到 async 函数的真正力量。...这样,我们就可以暂停一个异步函数吗?很好,这到底是什么意思? 当我们运行下面的代码块时让我们看下发生了什么: 额,这里发生了什么呢? 首先,JavaScript 引擎遇到了 console.log

    2.1K10

    【JS 口袋书】第 8 章:以更细的角度来看 JS 中的 this

    用于的绑定(规则3):绑定指显示将this绑定到一个上下文。为什么要绑定或重新绑定函数呢?...解决方法就是可以使用绑定this来更改showModal的对象。。...bind 是绑定函数最强大的方法。bind仍然为给定的函数接受一个新的上下文对象,但它不只是用新的上下文对象调用函数,而是返回一个永久绑定到对象的新函数。...绑定比隐绑定和默认绑定都更强。使用apply、call和bind,咱们可以通过为函数提供一个动态上下文对象来随意修改。...除了隐绑定和默认绑定之外,还有“绑定”,我们可以使用三种方法来实现这一点:apply、call和bind。 这些方法对于传递给定函数应在其上运行的宿主对象很有用。

    2.7K20

    面向 JavaScript 开发人员的 ECMAScript 6 指南(3):JavaScript 中的类

    ECMAScript 技术委员会曾经试图将面向对象的元素集成到 JavaScript 中,而牺牲的独特风格。在 ECMAScript 6 中,委员会最终找到了实现途径。...通常,toString() 方法会为您完成这项工作, obj 上没有定义该函数,事实上,之上什么都没有定义。代码不仅能运行,还会返回结果: 清单 8....因此,尽管没有的语法来定义静态字段,但可以直接在类型对象上引用字段。在上面的示例中,Person 构造函数首先检查 Person 是否已有一个 population 字段。...如果没有,它会将 population 设置为 0,隐创建字段。如果有一个 population 字段,那么它会递增值。...我们将探索 ECMAScript 6 库的一些增强,包括声明和使用模块的新语法。

    66640

    JavaScript 实践+理论(总结篇):作用域、闭包、this、对象原型

    引擎执行 RHS 时若找不到标识符,会抛出 ReferenceError 2. 引擎执行 LHS 时若找不到标识符,会隐在全局作用域中创建一个该名称的变量,并将其返回给引擎。 1....在 use strict 模式下禁止自动或隐创建全局变量,所以在引擎执行 LHS 时,不会再隐创建一个全局变量,而是直接抛出一个 ReferenceError。 2....如果函数体处于严格模式,this 会被绑定到 undefined, 否则 this 会绑定到全局对象。 4. 优先级问题 • 绑定:call()、apply()。...(硬绑定也是绑定的其中一种: bind()) • new 绑定: new Foo() • 隐绑定: obj.foo(); • 默认绑定: foo(); • 排序:绑定 > new 绑定 > 隐绑定...使用 new 调用是构造函数还是调用? function NothingSpecial() { console.log("Don't mind me!")

    8610

    翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数编程》- 第 2 章:函数基础

    或许有一个输出值( return 值),或许没有。 而函数则是接收输入值,并明确 return 值。 如果你计划使用函数编程,你应该尽可能多使用函数,而不是程序。...这个隐函数输出在函数编程中有一个特殊的名称:副作用。当然,没有副作用的函数也有一个特殊的名称:纯函数。我们将在以后的章节讨论这些,关键是我们应该喜欢纯函数并且要尽可能避免副作用。...我们进一步来深挖,建议使用 => 的论点是,通过使用更轻量级的语法,可以减少函数之间的视觉边界,也让我们使用偷懒的方式来使用它,这也是函数编程者的另一个爱好。...this 因为各种原因,不符合函数编程的原则。其中一个明显的问题是隐 this 共享。但我们可以更加,更靠向函数编程的方向: // .....从的角度来看,问题不在于使用对象来进行操作,而是我们试图使用输入取代输入。当我戴上名为函数编程的帽子时,应该把 this 放回衣架上。 总结 函数是强大的。

    1.6K90

    箭头函数和常规函数之间的 5 个区别

    `; } 虽然两者的语法都能够定义函数,但是在开发时怎么选择呢?这是个好问题。 在本文中,将展示两者之间的主要区别,以供能够根据需要选择正确的语法。...隐返回 常规函数 使用 return expression 语句从函数返回结果: function myFunction() { return 42; } myFunction(); // =>...如果箭头函数包含一个表达式,而你省略了该函数的花括号,则将返回表达式。...表达式由箭头函数返回,而无需使用 return 关键字。 方法 常规函数 常规函数是在类上定义方法的常用方式。...相反,箭头函数未定义 arguments(但是你可以用剩余参数 ...args 轻松访问箭头函数参数)。 如果箭头函数有一个表达式,则即使不用 return 关键字也将隐返回表达式。

    56130

    要深入 JavaScript,你需要掌握这 36 个概念

    也觉得 JS 在某些情况处理方式与其它语言不太一样,这并不能怪,它也只是以自己的方式展现给大家而已。 如果,你热爱一门编程语言,那么应该就会想深入了解并逐个掌握的概念。...。 这个特性称为自动装箱。每当读取一个基本类型的时候,JS 后台就会创建一个对应的基本包装类型对象,从而让我们能够调用一些方法来操作这些数据。...通过了解值类型和引用类型的概念,你就会更好了解如何为变量分配值和内存引用。 4. 强制类型转换 这个概念主要解释了隐类型强制之间的区别。 这是前端开发中对 JS 迷惑少数几个领域之一。...Number('789') // +'789' // 隐 789 !...纯函数指的是一个函数返回结果只依赖于的参数,并且在执行过程里面没有副作用。 函数副作用是指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响。

    46910

    深入理解this绑定

    fn(); })(obj.foo); 2.3 绑定 2.3.1 call() 和 apply() call() 或者 apply() 方法接受一个 thisArg,将函数的 this 绑定到 thisArg...new来调用函数,或者说发生构造函数调用时,会自动执行下面的操作: 1.创建一个新对象 2.为对象执行[[prototype]]链接 3.将该对象绑定到构造函数的this 4.如果函数没有返回对象...var bar = new foo() 函数是否通过 call、apply(绑定)或者硬绑定调用?如果是的话,this 绑定的是 指定的对象。...bar( 3 ); // a:2,b:3 4.2 间接引用 你可能会有意无意创建一个函数的间接引用,尤其是在赋值的时候 // p.foo = o.foo的返回值是目标函数的引用,所以调用位置是foo...但是会降低函数的灵活性,使用硬绑定之后就无法使用绑定或者绑定来修改this。

    46910

    ES6

    return a + b;}// 箭头函数定义const add = (a, b) => a + b;2、隐返回值指箭头函数中省略了return关键字,并且直接返回一个表达式的值。...这就是隐返回值的概念需要注意的是,隐返回值只适用于一行代码的情况。如果函数体有多行代码或者需要进行复杂的逻辑处理,仍然需要使用传统的函数定义并使用return关键字。...const calculate = (a, b) => { if (a > b) {return a - b; } else {return b - a; }};在上述示例中,根据条件判断使用返回值...(使用return关键字),而在其他情况下则使用了隐返回值。...在 JavaScript 中,一个对象如果具有 Symbol.iterator 属性并且属性是一个函数,则称对象为可迭代对象并且可以使用 for...of 循环或者 ... 运算符对其进行遍历。

    7410

    为了面试能通过,要看完这75道面试题(下)

    什么是包装对象(wrapper object)? 55. 隐转换有什么区别? 56. 什么是NaN? 以及如何检查值是否为 NaN? 57. 如何判断值是否为数组? 58....this }; const emp = new Employee("Marko Polo", "Software Developer", 2017); 使用apply和call方法调用——如果我们想指定一个函数的...缓存是建立一个函数的过程,这个函数能够记住之前计算的结果或值。使用缓存函数是为了避免在最后一次使用相同参数的计算中已经执行的函数的计算。...{} 将空对象分配给 this 值 将空对象的__proto__指向构造函数的prototype 如果没有使用return语句,则返回this 看下面事例: function Person() {...执行Generator函数返回一个遍历器对象,每一次Generator函数里面的yield都相当一次遍历器对象的next()方法,并且可以通过next(value)方法传入自定义的value,来改变Generator

    2.4K10

    Vue开发中常用的ES6新特性

    i++; } } const twice = twiceGen() 代码实现了与可迭代示例相同的行为,更为简单。...const addOne = (num) => num + 1; 此函数将自动返回表达式num +1的求值作为返回值,不需要使用return关键字。...在构造函数使用时,super关键字将单独出现,并且必须在使用this关键字之前使用。如下代码就是有异常的。...看起来是有点像Object,下面我们可以看看他们的比较: Map Object 意外的键 Map 默认情况包含任何键,只包含插入的键。...(foundNumbers); // 12是数组第一个大于10的数 Function.name 这不是方法而是属性,返回函数实例的名称,每个函数都有一个name属性,属性提供字符串形式的函数名称

    1.4K10

    说说这个this啊

    (好像写在上一个篇幅,嘤嘤嘤(’qAq’)),想当初还沿着作用域链去查找this绑定的是谁呢,不得不说《你不知道的javascript》,真不愧是神书。...new 如果函数或者方法调用之前带有关键字new,它就构成构造函数调用,也就是new绑定。 构造函数通常不使用return关键字,它们通常初始化新对象,当构造函数函数体执行完毕时,它会返回。...);//{a:2} 如果构造函数使用return语句没有指定返回值,或者返回一个原始类型的值,那么这时将忽略返回值,同时使用这个新对象作为调用结果 123456 function A(){ this.a...= 2; return;}var test = new A();console.log(test);//{a:2} 如果构造函数显式使用return语句返回一个对象,那么调用表达式的值就是这个对象...);//{a:1} 尽管有时候构造函数看起来像一个方法调用,依然会使用这个新对象作为this。

    84390

    JavaScript中的this指向哪?

    绑定当函数作为对象的方法被调用时,隐绑定规则会将this绑定到调用方法的对象,也就是"谁调用,就指向谁"。...绑定绑定主要指通过call、apply和bind方法可以绑定this的值:call 方法语法: function.call(thisArg, arg1, arg2, ...)...this 绑定;箭头函数没有自己的 this 绑定,只能继承外部作用域的 this 值,无法在运行时改变绑定对象,而且也无法通过绑定来改变 this 的指向。...,使用默认绑定规则,this 指向 window当函数作为对象方法被调用,使用绑定规则,this 指向这个对象函数作为构造方法时,使用 new 绑定规则,this 指向返回对象apply/call.../bind 要注意参数的传递和返回值不同箭头函数要看箭头函数在哪个作用域下,this 就指向谁绑定规则的优先级:fn()(全局环境)(默认绑定)< obj.fn()(隐绑定) < fn.call(obj

    14410

    全面理解面向对象的 JavaScript

    再 次,在类面向对象语言中,对象的状态 (state) 由对象实例 (instance) 所持有,对象的行为方法 (method) 则由声明对象的类所持有,并且只有对象的结构和方法能够被继承;而在原型式面向对象语言中...,对象的行为、状态都属于对象本身,并且能够一起被继承(参考资源),这也更贴近客观实际。...对象的 原型链中的第一个对象对象本身)进行赋值。反之,如果要获取某个对象属性的值,解释器自然是返回对象原型链中首先具有属性的对象属性值。图 1说名了这中隐藏机制: 图 1....与其他类面向对象那样声明私有公有成员的方式不同,JavaScript 的信息隐藏就是靠闭包实现的。见 程序清单 7: 清单 7....要对这门语言有透彻的理解,就必须扒开其 c 语言的外衣,从新回到函数编程的角度,同时摒弃原有类的面向对象概念去学习领悟

    1K100

    es6中class类的全方面理解(一)

    构造函数生成实例的执行过程: 1.当使用了构造函数并且new 构造函数(),后台会隐执行new Object()创建对象; 2.将构造函数的作用域给新对象,(即new Object()创建出的对象...3.执行构造函数的代码。 4.返回对象(后台直接返回); ES6引入了Class(类)这个概念,通过class关键字可以定义类。关键字的出现使得其在对象写法上更加清晰,更像是一种面向对象的语言。...} } var obj=new Box(); constructor方法如果没有定义,会隐生成一个constructor方法。所以即使你没有添加构造函数,构造函数也是存在的。...in操作符会在通过对象能够访问给定属性时返回true,无论属性存在于实例中还是原型中。...使用实例的__proto属性改写原型,会改变Class的原始定义,影响到所有实例,所以推荐使用

    46020
    领券