taro-code
Version:
Taro.js barcode & qrcode, Image & Canvas
42 lines • 1.42 kB
JavaScript
import Taro from '@tarojs/taro';
const getElement = async (id, rootSelector) => {
if (Taro.getEnv() === Taro.ENV_TYPE.WEB) {
const canvasWrap = document.getElementById(id);
const canvas = canvasWrap.children[0];
return await Promise.resolve(canvas);
}
else {
return await new Promise((resolve) => {
const selector = rootSelector != null ? `${rootSelector} >>> #${id}` : `#${id}`;
Taro.createSelectorQuery()
.select(selector)
.fields({ node: true, size: true })
.exec((res) => {
var _a;
if (((_a = res[0]) === null || _a === void 0 ? void 0 : _a.node) != null) {
const canvas = res[0].node;
resolve(canvas);
}
else {
resolve(undefined);
}
});
});
}
};
export const waitForElement = async (id, rootSelector, step = 0) => {
try {
const canvas = await getElement(id, rootSelector);
if (canvas != null) {
return canvas;
}
else {
if (step + 1 < 100) {
await new Promise((resolve) => setTimeout(resolve, 10));
return await waitForElement(id, rootSelector, step + 1);
}
}
}
catch (error) { }
};
//# sourceMappingURL=element.js.map