日常总结2
总结日常遇到的问题
错误记录
proxy代理,在低版本node上报错问题
const a = obj => new Proxy({},{
get(target, p){
return obj;
}
})
使用proxy,代理一个空对象{}
时,如果在get方法中,返回的属性是{}
没有的,底层就会调用getOwnPropertyDescriptor
属性,进而出现问题,比如报如下问题
需要解决
异步变同步
使用c++从底层实现异步变同步,deasync
import { loopWhile } from 'deasync';
declare type FunctionType = (...args: any[]) => any;
const awaitSync = (fn: FunctionType) => {
return function () {
let done = false;
let data = null;
let hasError = false;
let error = null;
// @ts-ignore
const promise = fn.apply(this, arguments);
if (!promise && typeof promise.then !== 'function') {
return promise;
}
promise.then(
(v: any) => {
done = true;
data = v;
},
(err: any) => {
done = true;
hasError = true;
error = err;
}
);
loopWhile(() => !done);
if (hasError) {
throw error;
}
return data;
}
}
链接点击,deasync
推荐阅读
如何在Nuxt3中设置接口代理
可能很多人会疑惑,为啥我们都用了服务端渲染框架,还需要用接口代理呢?其实大多数团队,都是前后端分离的架构,已经用 Java 或者其他后端语言开发并部署好了接口服务。这种情况下,我们自然只需要将前端的请求...
imwty阅读 781
搞懂设计模式——代理模式 + 原理分析
作者:京东零售 秦浩然引子举个栗子,众所周知,我们是可以在京东上购买机票的。 但机票是航司提供的,我们本质上是代理销售而已。那为什么航司要让我们代理销售呢?我们又是如帮他做代理的呢?别急,本文将展开...
京东云开发者赞 1阅读 241
《底层到底做了什么》--- mybatis-plus的一次select调用过程
使用mybatis-plus创建db mapper,只需要写一个接口继承BaseMapper,比如示例中的EntityMapper。 {代码...} 本文将解释在底层一次select调用是怎么完成。 主要包括以下几个部分:核心类及包容器初始化Mapper bean初...
一句话阅读 270
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。